package com.syh.jn.scm.service.api.supplier.statistics;

import com.syh.jn.scm.dto.supplier.statistics.sale.*;

import java.util.List;
import java.util.Map;

/**
 * 销售报表接口
 */
public interface SalesReportService {
  /**
   * 根据商品进行统计销售
   * @param params
   * @return
   */
  List<GoodsSalesReportVo> goodsSalesReport(Map<String,Object> params);

  /**
   * 根据商品进行统计销售数量
   * @param params
   * @return
   */
  Integer goodsSalesReportCount(Map<String,Object> params);

  /**
   * 根据商品进行统计销售
   * @param params
   * @return
   */
  List<CustomerSalesReportVo> customerSalesReport(Map<String,Object> params);

  /**
   * 根据下游客户进行统计销售数量
   * @param params
   * @return
   */
  Integer customerSalesReportCount(Map<String,Object> params);

  /**
   * 根据商品分类进行统计销售
   * @param params
   * @return
   */
  List<GoodsCategorySalesReportVo> goodsCategorySalesReport(Map<String,Object> params);

  /**
   * 根据商品分类进行统计销售数量
   * @param params
   * @return
   */
  Integer goodsCategorySalesReportCount(Map<String,Object> params);

  /**
   * 根据商品品牌进行统计销售
   * @param params
   * @return
   */
  List<GoodsBrandSalesReportVo> goodsBrandSalesReport(Map<String,Object> params);

  /**
   * 根据商品品牌进行统计销售数量
   * @param params
   * @return
   */
  Integer goodsBrandSalesReportCount(Map<String,Object> params);
  /**
   * 销售成本报表统计
   * @param params
   * @return
   */
  List<SaleCostReportVo> saleCostReport(Map<String,Object> params);

  /**
   * 销售单成本明细
   * @param id
   * @return
   */
  SaleCostReportVo saleCostReportById(Long id);

  /**
   * 销售成本报表统计数量
   * @param params
   * @return
   */
  Integer saleCostReportCount(Map<String,Object> params);


}
